<?php

class Application_Model_InformeElectricidadMensualSalas extends Sgit_Model
{
    protected $_name = 'informe_electricidad_mensual_salas';
    protected $_primary = 'id';



    function updateImputacion($id_zona,$mes_imputacion,$anio_imputacion)
    {
        
        $imputacion_proyectos=new Application_Model_InformeElectricidadMensualProyecto();
        $m_salas=new Application_Model_Salas();
        $proyectos=new Application_Model_Proyectos();


        $salas= $m_salas->getAllByZona($id_zona);

        foreach($salas as $v)
        {
            unset($imp);
            $where['id_sala=?']=$v['id'];
            $where['mes=?']=$mes_imputacion;
            $where['anio=?']=$anio_imputacion;
            
            $rows=$imputacion_proyectos->getAll($where);
    
    
            foreach($rows as $g)
            {
                $imp['consumo']+=$g['consumo_it'];
                $imp['superficie_ocupada']+=$g['superficie'];
                $imp['superficie_contratada']+=$g['superficie_contratada'];
            }
            
            
            
            $imp['id_zona']=$id_zona;
            $imp['id_sala']=$v['id'];
            $imp['mes']=$mes_imputacion;
            $imp['anio']=$anio_imputacion;
            
            
            $imp['superficie_neta']=$v['sup_neta'];
            $imp['superficie_perdida']=$v['sup_perdida'];
            $imp['potencia_frio']=$v['potencia_frio'];
            
            
            $this->insertRow($imp);
        }




    }
    
    
    function borraImputacion($id_zona,$mes_imputacion,$anio_imputacion)
    {
        $where['id_zona=?']=$id_zona;
        $where['mes=?']=$mes_imputacion;
        $where['anio=?']=$anio_imputacion;
        $this->deleteRow($where);
        
    }
        
    
    function getLastImputacion($id_sala)
    {
        $select = $this->getAdapter()->select();
        $select->from(array($this->_name))->where("id_sala = ?", $id_sala, 'INTEGER')->order(array('anio desc', 'mes desc'))->limit(1);
        return $this->getAdapter()->fetchRow($select);
    }


    function getListadoImputacion($values = array(), $id = null)
    {


        $select = $this->getAdapter()->select()->from(array($this->_name))
        ->joinLeft('salas', "salas.id = {$this->_name}.id_sala", array('nombre','tipo_sala'));


        if (!is_null($id))
        {
            $select->where("{$this->_name}.id= ?", $id);
        } else
        {
            if (is_numeric($values['id_zona']))
            {
                $select->where("{$this->_name}.id_zona= ?", $values['id_zona']);
                $where['id_zona = ?'] = $values['id_zona'];
            }

            if (is_numeric($values['mes']))
            {
                $select->where("{$this->_name}.mes= ?", $values['mes']);
                $where['mes = ?'] = $values['mes'];
            }

            if (is_numeric($values['anio']))
            {
                $select->where("{$this->_name}.anio= ?", $values['anio']);
                $where['anio = ?'] = $values['anio'];
            }

            if (is_numeric($values['id_sala']))
                $select->where("id_sala= ?", $values['id_sala']);
                

        }



        $rows = $this->getAdapter()->fetchAll($select);

        $f = new Zend_Date();
		$f->setDay(1);
		
        foreach ($rows as &$v)
        {
            $f->setYear($v['anio'])->setMonth($v['mes']);
            $v['fecha'] = $f->toString('MMM-yyyy');
            $f->subMonth(1);
            $v['potencia'] = Sgit_Util_Potencia::run($v['consumo'], $f);
            $v['ratiowm2_neta'] = $v['potencia']*1000/$v['superficie_neta'];
            $v['ratiowm2_contratada'] = $v['potencia']*1000/$v['superficie_contratada'];
            
            $v['superficie_libre'] =$v['superficie_neta']-$v['superficie_perdida']-$v['superficie_contratada'];
            $v['limite']=1000*$v['potencia_frio']/$v['superficie_contratada'];
           
            $v['porcentaje']=$v['ratiowm2_ocupada']*100/(1000*$v['potencia_frio']/$v['superficie_contratada']);
           
            
        }

        return $rows;

    }
    


}
